// 正则： \s 表示空白字符；\S 表示非空白字符；* 表示匹配任意次
const fs = require('fs');
const path = require('path');
// 定义正则表达式，分别匹配<style></style>和<script></script>标签
const regStyle = /<style>[\s\S]*<\/style>/;
const regScript = /<script>[\s\S]*<\/script>/;

// 调用fs.readFile()方法读取文件
fs.readFile(path.join(__dirname, '/test.html'), 'utf8', function (err, dataStr) {
  if (err) return console.log(err.message);
  // console.log('读取成功：',dataStr);
  resolveCSS(dataStr);
  resolveJS(dataStr);
  resolveHTML(dataStr);
});

// 处理css样式
function resolveCSS(htmlStr) {
  // 提取需要的内容
  const r1 = regStyle.exec(htmlStr)
  let newCSS = r1[0].replace('<style>', '').replace('</style>', '')
  fs.writeFile(path.join(__dirname, '/clock/test.css'), newCSS, 'utf-8', function (err) {
    if (err) return console.log(err.message);
    console.log('写入成功');
  })
}

// 处理js脚本
function resolveJS(htmlStr) {
  // 提取需要的内容
  const r1 = regScript.exec(htmlStr)
  let newJS = r1[0].replace('<script>', '').replace('</script>', '')
  fs.writeFile(path.join(__dirname, '/clock/test.js'), newJS, 'utf-8', function (err) {
    if (err) return console.log(err.message)
    console.log('写入成功');
  })
}

// 处理html文件
function resolveHTML(htmlStr){
  let newHTML = htmlStr.replace(regStyle,'<link rel="stylesheet" href="./test.css"').replace(regScript,'<script src="./test.js"></script>')
  fs.writeFile(path.join(__dirname,'/clock/test2.html'),newHTML,'utf-8',function(err){
    if(err) return console.log(err);
    console.log('写入成功');
  })
}
